package com.chenwc.netty.tcp.coder;

import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToByteEncoder;
import io.netty.util.CharsetUtil;

/**
 * 数据编码 netty服务端回复消息时，对消息转JsonString增加分割符，并进行编码。
 * @author chenwc
 * @date 2023/5/28 1:00
 */
public class MessageEncodeHandler extends MessageToByteEncoder<Message> {

    // 数据分割符
    String delimiter;

    public MessageEncodeHandler(String delimiter) {
        this.delimiter = delimiter;
    }

    @Override
    protected void encode(ChannelHandlerContext channelHandlerContext, Message message, ByteBuf out) {
        out.writeBytes((message.toJsonString() + delimiter).getBytes(CharsetUtil.UTF_8));
    }
}
